package com.example.controller;
//文件上传到阿里云
import com.example.pojo.Result;
import com.example.utils.AliOSSUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

@Slf4j
@RestController
public class UploadController {
    //结束文件保存到本地
    /*//请求路径跟前端传回来的一样
    @PostMapping("upload")    //图片的接收 MultipartFile通过这个类型接收图片
    public Result  upload(String name, Integer age, MultipartFile image) throws IOException {
        log.info("文件上传：{},{},{}",name,age,image);

        //获取原始文件名字--可能存在文件名字重复 会覆盖 123.0.0.jpg
        String org = image.getOriginalFilename();

        //uuid -通用唯一识别码 长度固定的字符串
        //获取文件最后的扩张名
        int indexOf = org.lastIndexOf(".");
        log.info(String.valueOf(indexOf));//。的索引位置
        String extname = org.substring(indexOf);
        log.info(extname);//.jpg
        String s = UUID.randomUUID().toString() + extname;
        log.info("新文件名字：{}",s);
        //默认大小不能超过1MB 超出需要app配置
        *//*# 配置单个文件上传大小的限制 --multipart
        spring.servlet.multipart.max-file-size=10MB

        # 配置单次请求最大大小的限制 （一次请求多个文件 总大小）
        spring.servlet.multipart.max-request-size=100MB*//*

        //将文件存到本地D:\aaa\bbb
        image.transferTo(new File("D:\\aaa\\bbb\\"+ s));
        return Result.success();
    }*/


    //注入工具类
    @Autowired
    private AliOSSUtils aliOSSUtils;

    //上传文件到ail oss
    @PostMapping("/upload") //加上MultipartFile参数跟文件名字一样--服务端接收接收文件
    public Result upload(MultipartFile image) throws IOException {
        log.info("文件上传，文件名：{}",image.getOriginalFilename());
        //调用阿里云工具类
        String url = aliOSSUtils.upload(image);
        log.info("文件路径为：{}",url);
        return Result.success(url);
    }
}
